# PDF_S/__init__.py
import os
import logging
from logging.handlers import RotatingFileHandler

# 确保日志文件夹存在
log_dir = os.path.join(os.path.dirname(__file__), "logs")
os.makedirs(log_dir, exist_ok=True)

# 日志文件路径
log_file = os.path.join(log_dir, "pdf_processor.log")

# 日志格式（包含时间、级别、模块、消息）
log_format = logging.Formatter(
    "%(asctime)s - %(levelname)s - %(module)s:%(lineno)d - %(message)s"
)

# 配置根日志
root_logger = logging.getLogger()
root_logger.setLevel(logging.DEBUG)  # 全局日志级别

# 1. 控制台处理器（输出到屏幕）
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.INFO)  # 控制台只输出INFO及以上级别
console_handler.setFormatter(log_format)

# 2. 文件处理器（输出到文件，支持日志轮转）
file_handler = RotatingFileHandler(
    log_file,
    maxBytes=1024 * 1024 * 5,  # 单个日志文件最大5MB
    backupCount=5,  # 最多保留5个备份文件
    encoding="utf-8"
)
file_handler.setLevel(logging.DEBUG)  # 文件输出所有级别日志
file_handler.setFormatter(log_format)

# 添加处理器到根日志
root_logger.addHandler(console_handler)
root_logger.addHandler(file_handler)

# 记录包初始化日志
logging.info("PDF_S 顶级包加载完成")